Rubyでは、メソッド呼び出しはメモリ上のアドレスへの静的ジャンプではなく、動的な メッセージ伝達イベントです。メソッドを呼び出すとき、あなたは「受信者」にメッセージを送信しています。 受信者このメッセージは、メソッド名、オプションの引数、および潜在的な ブロック関連付けです。
1. 呼び出し構文と曖昧さ
Rubyは非常に柔軟性を持っています: Foo.Bar と Foo.Bar() は同一です。ただし、 Foo::Bar は通常定数を指す一方で、 Foo::Bar() はメソッド呼び出しを強制します。括弧はしばしば省略され、メソッドがプロパティのように見えるDSLのような体験を生み出します。
2. 演算子の分解
演算子は実際に 再定義可能なメソッドです。式 expr1 + expr2 は (expr1).+(expr2)という表記の糖衣です。これは単項演算子(-obj)、二項演算子(a < b)、および後置演算子に適用されます。
3. yield機構
メソッドは yield を使って、制御フローを関連するブロックへと移行します。 Kernel.block_given?を使用することで、呼び出し元のコンテキストに基づいて、メソッドが論理処理を動的に決定できます。
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>